java源码分析之集合框架SortedMap 、 NavigableMap 、Dictionary 09




SortedMap


SortedMap也是一个接口,继承与Map接口,Sorted表示它是一个有序的键值映射。

SortedMap的排序方式有两种:自然排序和指定比较器排序。插入有序的SortedMap的所有元素都必须实现Comparable接口(或被指定的比较器所接受)。

SortedMap定义的API:


//继承与Map的API不再赘写  
package java.util;  
public interface SortedMap<K,V> extends Map<K,V> {  
    Comparator<? super K> comparator(); //返回比较器对象  
    SortedMap<K,V> subMap(K fromKey, K toKey); //返回指定key范围内的Map  
    SortedMap<K,V> headMap(K toKey); //返回小于指定key的部分集合  
    SortedMap<K,V> tailMap(K fromKey); //返回大于等于指定key的部分集合  
    K firstKey(); //返回第一个元素的key  
    K lastKey();  //返回最后一个元素的key  
}  


NavigableMap

         扩展的 SortedMap,具有了针对给定搜索目标返回最接近匹配项的导航方法。方法 lowerEntryfloorEntryceilingEntryhigherEntry 分别返回与小于小于等于大于等于大于给定键的键关联的 Map.Entry 对象,如果不存在这样的键,则返回 null。类似地,方法 lowerKeyfloorKeyceilingKeyhigherKey 只返回关联的键。所有这些方法是为查找条目而不是遍历条目而设计的。

        可以按照键的升序或降序访问和遍历 NavigableMapdescendingMap 方法返回映射的一个视图,该视图表示的所有关系方法和方向方法都是逆向的。升序操作和视图的性能很可能比降序操作和视图的性能要好。subMapheadMaptailMap 方法与名称相似的 SortedMap 方法的不同之处在于:可以接受用于描述是否包括(或不包括)下边界和上边界的附加参数。任何 NavigableMap 的 Submap 必须实现 NavigableMap 接口。

        此外,此接口还定义了 firstEntrypollFirstEntrylastEntrypollLastEntry 方法,它们返回和/或移除最小和最大的映射关系(如果存在),否则返回 null

       条目返回方法的实现应当返回 Map.Entry 对,表示产生映射关系时它们的快照,因此通常 支持可选的 Entry.setValue 方法。不过要注意的是,可以使用 put 方法在关联映射中更改映射关系。

   subMap(K, K)headMap(K)tailMap(K) 方法被指定为返回 SortedMap,以允许现有 SortedMap 实现能相容地改进为实现 NavigableMap,但鼓励此接口的扩展和实现重写这些方法以返回 NavigableMap。类似地,可以重写 SortedMap.keySet() 以返回 NavigableSet。 


    NavigableMap继承与SortedMap,先看它的API:




Dictionary

     Dictionary 类是任何可将键映射到相应值的类(如 Hashtable)的抽象父类。每个键和每个值都是一个对象。在任何一个 Dictionary 对象中,每个键至多与一个值相关联。给定一个 Dictionary 和一个键,就可以查找所关联的元素。任何非 null 对象都可以用作键或值。

      通常,应该在此类的实现中使用 equals 方法,以决定两个键是否相同。

注:此类已过时。新的实现应该实现 Map 接口,而不是扩展此类。


    Dictionary中也包括了操作键值对的基本方法呢,它的定义以及API如下:









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值